package br.senai.sc.web.condicoesClimaticas.beans;

import java.io.Serializable;

import javax.faces.bean.ViewScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;

import org.jboss.seam.international.status.Messages;
import org.jboss.seam.international.status.builder.BundleKey;

import br.senai.sc.controller.crud.CondicaoClimaticaCRUD;
import br.senai.sc.controller.exception.BusinessException;
import br.senai.sc.model.CondicaoClimatica;
import br.senai.sc.util.SystemConstants;

/**
 * @author Tiago
 * @version $Id: CondicoesClimaticasBean.java 29 2012-03-08 17:18:46Z tiago.wanke $
 */
@Named
@ViewScoped
public class CondicoesClimaticasBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    private CondicaoClimaticaCRUD condicaoClimaticaCRUD;

    private CondicaoClimatica condicaoClimatica;

    private DataModel<CondicaoClimatica> condicoesClimaticas;

    @Inject
    private Messages messages;

    public DataModel<CondicaoClimatica> getCondicoesClimaticas() {
    	
    	if(condicoesClimaticas == null) {
    		condicoesClimaticas = new ListDataModel<CondicaoClimatica>(condicaoClimaticaCRUD.findCondicoesClimaticas());
    	}
    	
        return condicoesClimaticas;
    }

    public void setCondicoesClimaticas(DataModel<CondicaoClimatica> condicoesClimaticas) {
        this.condicoesClimaticas = condicoesClimaticas;
    }

    public CondicaoClimatica getCondicaoClimatica() {
        return condicaoClimatica;
    }

    public void setCondicaoClimatica(CondicaoClimatica condicaoClimatica) {
        this.condicaoClimatica = condicaoClimatica;
    }

    public void cadastrarCondicaoClimatica() {
        condicaoClimatica = new CondicaoClimatica();
    }

    public void carregarCondicaoClimatica() {
        condicaoClimatica = condicoesClimaticas.getRowData();
    }

    public void salvarCondicaoClimatica() {
        try {

            condicoesClimaticas = null;
            condicaoClimatica = condicaoClimaticaCRUD.salvar(condicaoClimatica);
            condicaoClimatica = null;
            messages.info(new BundleKey(SystemConstants.PATH_TO_APPLICATION_MESSAGES, "condicoesClimaticas.cadastrar.sucesso"));
        } catch (BusinessException e) {}
    }

    public void removerCondicaoClimatica() {
        try {
            condicaoClimaticaCRUD.remover(condicaoClimatica);
            condicaoClimatica = null;
            condicoesClimaticas = null;
            messages.info(new BundleKey(SystemConstants.PATH_TO_APPLICATION_MESSAGES, "condicoesClimaticas.remover.sucesso"));
        } catch (BusinessException e) {}
    }
}